package com.kyrie.lib_sys.application.userApplys.mapper;

import com.github.pagehelper.Page;
import com.kyrie.lib_sys.common.pojo.dto.UserPageQueryDTO;
import com.kyrie.lib_sys.common.pojo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

@Mapper
public interface UserMapper {


    /**
     * 插入用户
     *
     * @param user
     */
    void insert(User user);



    /**
     * 根据条件查询用户
     *
     * @param user
     */
    User queryByCondition(User user);


    /**
     * 根据手机号查询用户查询用户
     *
     * @param phone
     */
    User queryByPhone(@Param("phone") String phone);

    /**
     * 分页查询用户
     *
     * @param userPageQueryDTO
     */
    Page<User> queryPage(UserPageQueryDTO userPageQueryDTO);


    /**
     * 修改用户
     *
     * @param user
     */
    void update(User user);

    /**
     * 根据id删除用户
     *
     * @param user
     */
    void deleteById(User user);

    /**
     * 批量插入用户
     *
     * @param userList
     */
    void insertBatch(@Param("entities") ArrayList<User> userList);

    /**
     * 批量删除用户
     *
     * @param ids
     */
    void deleteBatch(List<Long> ids);
}
